package com.dragon.modules.yuegou.model.park;

import com.dragon.modules.yuegou.entity.park.ExitEntity;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
 * 停车入场信息表模型类
 * 
 * @author pbuilder generated
 * @date 2019-08-26 17:08:08
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class Exit extends ExitEntity {

	/**
	 * 构造一个空停车入场信息表模型对象
	 */
	public Exit(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个停车入场信息表模型对象
	 * 
	 * @param entity 实体对象
	 */
	public Exit(ExitEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个停车入场信息表模型对象
	 * 
	 * @param other 其它对象
	 */
	public Exit(Exit other){
		super(other);
	}


	@Override
	public String getThirdId() {
    	return thirdId;
    }

    /**
	 * 设置第三方停车ID或者停车订单号
	 * 
	 * @param thirdId 第三方停车ID或者停车订单号
	 * @return 当前对象
	 */
    public Exit thirdId(String thirdId) {
    	this.thirdId = thirdId;
    	return this;
    }

	@Override
	public String getBusdId() {
    	return busdId;
    }

    /**
	 * 设置商圈ID
	 * 
	 * @param busdId 商圈ID
	 * @return 当前对象
	 */
    public Exit busdId(String busdId) {
    	this.busdId = busdId;
    	return this;
    }

	@Override
	public String getPlateNumber() {
    	return plateNumber;
    }

    /**
	 * 设置车牌号
	 * 
	 * @param plateNumber 车牌号
	 * @return 当前对象
	 */
    public Exit plateNumber(String plateNumber) {
    	this.plateNumber = plateNumber;
    	return this;
    }

	@Override
	public String getParkingName() {
    	return parkingName;
    }

    /**
	 * 设置停车场名称
	 * 
	 * @param parkingName 停车场名称
	 * @return 当前对象
	 */
    public Exit parkingName(String parkingName) {
    	this.parkingName = parkingName;
    	return this;
    }

	@Override
	public String getParkingId() {
    	return parkingId;
    }

    /**
	 * 设置停车场ID
	 * 
	 * @param parkingId 停车场ID
	 * @return 当前对象
	 */
    public Exit parkingId(String parkingId) {
    	this.parkingId = parkingId;
    	return this;
    }

	@Override
	public LocalDateTime getEntranceTime() {
    	return entranceTime;
    }

    /**
	 * 设置入场时间
	 * 
	 * @param entranceTime 入场时间
	 * @return 当前对象
	 */
    public Exit entranceTime(LocalDateTime entranceTime) {
    	this.entranceTime = entranceTime;
    	return this;
    }

	@Override
	public String getUserType() {
    	return userType;
    }

    /**
	 * 设置用户类型 76:长租用户；77：临停用户
	 * 
	 * @param userType 用户类型 76:长租用户；77：临停用户
	 * @return 当前对象
	 */
    public Exit userType(String userType) {
    	this.userType = userType;
    	return this;
    }

	@Override
	public LocalDateTime getPushTime() {
    	return pushTime;
    }

    /**
	 * 设置车辆入场信息推送时间
	 * 
	 * @param pushTime 车辆入场信息推送时间
	 * @return 当前对象
	 */
    public Exit pushTime(LocalDateTime pushTime) {
    	this.pushTime = pushTime;
    	return this;
    }

	@Override
	public LocalDateTime getExitTime() {
    	return exitTime;
    }

    /**
	 * 设置出场时间
	 * 
	 * @param exitTime 出场时间
	 * @return 当前对象
	 */
    public Exit exitTime(LocalDateTime exitTime) {
    	this.exitTime = exitTime;
    	return this;
    }

	@Override
	public Long getStayedTime() {
    	return stayedTime;
    }

    /**
	 * 设置停留时间(以秒为单位计算)
	 * 
	 * @param stayedTime 停留时间(以秒为单位计算)
	 * @return 当前对象
	 */
    public Exit stayedTime(Long stayedTime) {
    	this.stayedTime = stayedTime;
    	return this;
    }

	@Override
	public BigDecimal getReceivableFee() {
    	return receivableFee;
    }

    /**
	 * 设置
	 * 
	 * @param receivableFee 
	 * @return 当前对象
	 */
    public Exit receivableFee(BigDecimal receivableFee) {
    	this.receivableFee = receivableFee;
    	return this;
    }

	@Override
	public BigDecimal getPaidServiceFee() {
    	return paidServiceFee;
    }

    /**
	 * 设置服务费(历次服务费总和)
	 * 
	 * @param paidServiceFee 服务费(历次服务费总和)
	 * @return 当前对象
	 */
    public Exit paidServiceFee(BigDecimal paidServiceFee) {
    	this.paidServiceFee = paidServiceFee;
    	return this;
    }

	@Override
	public String getFixParkingId() {
    	return fixParkingId;
    }

    /**
	 * 设置长租车位ID
	 * 
	 * @param fixParkingId 长租车位ID
	 * @return 当前对象
	 */
    public Exit fixParkingId(String fixParkingId) {
    	this.fixParkingId = fixParkingId;
    	return this;
    }

	@Override
	public String getRemainingDays() {
    	return remainingDays;
    }

    /**
	 * 设置长租剩余天数 如果是临停用户此字段为空
	 * 
	 * @param remainingDays 长租剩余天数 如果是临停用户此字段为空
	 * @return 当前对象
	 */
    public Exit remainingDays(String remainingDays) {
    	this.remainingDays = remainingDays;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 * @return 当前对象
	 */
    public Exit createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }
}
